package NGUYENMINHHIEU.SWING_DEMO;

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.SystemColor;
import java.awt.Toolkit;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class VIEWS extends JFrame {

    private final JPanel contentPane;
    private final JTextField txtTenTruyCap;
    private final JPasswordField txtMatKhau;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    VIEWS frame = new VIEWS();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public VIEWS() {
        setIconImage(Toolkit.getDefaultToolkit().getImage(
                VIEWS.class.getResource("/NGUYENMINHHIEU/SWING_DEMO/ICONS/user.gif")));
        setTitle("PHẦN MỀM QUẢN LÝ NHÂN SỰ :D");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 501, 218);
        contentPane = new JPanel();
        contentPane.setBorder(new TitledBorder(null, "Th\u00F4ng tin \u0111\u0103ng nh\u1EADp", TitledBorder.LEADING,
                TitledBorder.TOP, null, Color.RED));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        JLabel lblNewLabel = new JLabel("Vui lòng nhập đầy đủ thông tin :");
        lblNewLabel.setFont(new Font("Cambria", Font.PLAIN, 14));
        lblNewLabel.setBounds(20, 19, 455, 18);
        contentPane.add(lblNewLabel);

        JButton btnDangNhap = new JButton("Đăng Nhập");
        btnDangNhap.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                /*JOptionPane.showMessageDialog(getParent(), 
                                        "Nội dung thông báo!!!");
                JOptionPane.showMessageDialog(getParent(), 
                                "Nội dung thông báo", "Tiêu đề thông báo", 
                                JOptionPane.ERROR_MESSAGE);
                JOptionPane.showMessageDialog(getParent(), 
                                "Nội dung thông báo", "Tiêu đề thông báo", 
                                JOptionPane.QUESTION_MESSAGE, 
                                new ImageIcon(VIEWS.class.getResource
                        ("/NGUYENMINHHIEU/SWING_DEMO/ICONS/contacts.png")));*/
                
                //1. Kiểm tra trạng thái các điều khiển trên frame?
                if(txtTenTruyCap.getText().isEmpty()){
                    JOptionPane.showMessageDialog(getParent(), 
                                "Yêu cầu phải nhập vào tên truy cập!", 
                                "Thông báo", JOptionPane.ERROR_MESSAGE);
                }
                else if(txtMatKhau.getText().isEmpty()){
                    JOptionPane.showMessageDialog(getParent(), 
                            "Yêu cầu phải nhập vào mật khẩu!", 
                            "Thông báo", JOptionPane.ERROR_MESSAGE);
                }
                else{
                    //2. Kiểm tra xác thực tài khoản?
                    //a. Khai báo & khởi tạo Controllers
                    CONTROLLERS objController = new CONTROLLERS();
                    
                    //b. Khai báo & khởi tạo thông tin cho UserEntity
                    UserEntity objEntity = new UserEntity();
                    objEntity.setRollNo(100); 
                    objEntity.setFullName("Hoàng Văn C");
                    objEntity.setUserName(txtTenTruyCap.getText());
                    objEntity.setPassWord(txtMatKhau.getText()); 
                                        
                    //b. Ủy quyền thực thi nghiệp vụ thông qua Controller
                    if(objController.CheckUserInfor(objEntity)){
                        JOptionPane.showMessageDialog(getParent(), 
                                "Đăng nhập thành công!!!", "Thông báo", 
                                JOptionPane.INFORMATION_MESSAGE);
                    }
                    else{
                        JOptionPane.showMessageDialog(getParent(), 
                                "Đăng nhập thất bại!!!", "Thông báo", 
                                JOptionPane.ERROR_MESSAGE);
                    }
                }
                
            }
        });
        btnDangNhap.setIcon(new ImageIcon(VIEWS.class.getResource("/NGUYENMINHHIEU/SWING_DEMO/ICONS/contacts.png")));
        btnDangNhap.setBackground(Color.RED);
        btnDangNhap.setFont(new Font("Cambria", Font.PLAIN, 14));
        btnDangNhap.setBounds(211, 124, 132, 33);
        contentPane.add(btnDangNhap);

        txtTenTruyCap = new JTextField();
        txtTenTruyCap.setBackground(Color.ORANGE);
        txtTenTruyCap.setBounds(131, 48, 332, 27);
        contentPane.add(txtTenTruyCap);
        txtTenTruyCap.setColumns(10);

        txtMatKhau = new JPasswordField();
        txtMatKhau.setBackground(SystemColor.textHighlight);
        txtMatKhau.setBounds(131, 86, 332, 27);
        contentPane.add(txtMatKhau);

        JLabel lblTnTruyCp = new JLabel("Tên truy cập :");
        lblTnTruyCp.setFont(new Font("Cambria", Font.PLAIN, 14));
        lblTnTruyCp.setBounds(20, 48, 101, 27);
        contentPane.add(lblTnTruyCp);

        JLabel lblMtKhu = new JLabel("Mật khẩu :");
        lblMtKhu.setFont(new Font("Cambria", Font.PLAIN, 14));
        lblMtKhu.setBounds(20, 86, 101, 27);
        contentPane.add(lblMtKhu);

        JButton btnThoat = new JButton("Thoát");
        btnThoat.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
            }
        });
        btnThoat.setIcon(new ImageIcon(VIEWS.class.getResource("/NGUYENMINHHIEU/SWING_DEMO/ICONS/cancel.gif")));
        btnThoat.setBackground(new Color(160, 82, 45));
        btnThoat.setFont(new Font("Cambria", Font.PLAIN, 14));
        btnThoat.setBounds(351, 124, 112, 33);
        contentPane.add(btnThoat);
    }
}
